<?
/*
 *	EXTENSION TICKET
 *
 * 	Verifie si il existe une boite au lettre pour le destinataire et l'expediteur
 *
 */

class Transaction extends genericClass {
	function Create()
	{
		//On verifie pour l'expediteur
		$A = $this->checkOrCreateAccount($this->Emetteur,"Emetteur");
		//De même pour le destinataire
		$B = $this->checkOrCreateAccount($this->Receveur,"Receveur");
		//On ajoute la reference
		$this->Set("Reference", $A."-".$B."-".$this->Get("MontantCreds")."-".date("ymd",mktime()));
	}


	function checkOrCreateAccount($Id,$Type)
	{
		$dID = $this->checkAccount($Id);
		if ($dID==-1) $dID = $this->createAccount($Id);
		//On ajoute la clef etrangere pour ce destinataire
		$this->addFkey("Compte",$dID,2,$Type);
		return $dID;
	}

	function createAccount($Id)
	{
		$NewAcc = genericClass::createInstance("Banque","Compte");
		$NewAcc->Set("Reference",$Id);
		$NewAcc->Set("User",$Id);
		$Result=$GLOBALS["Systeme"]->Modules["Systeme"]->callData("Systeme/User/Id=".$Id);
		$NewAcc->Set("Nom", $Result[0]["Prenom"]." ".$Result[0]["Nom"]." ".$Result[0]["Mail"]);
		$NewAcc->Set("Type",$Result[0]["Type"]);
		$NewAcc->Save();
		return $NewAcc->Get("Id");
	}

	function checkAccount($Id)
	{
		$Result=$GLOBALS["Systeme"]->Modules["Banque"]->callData("Compte/User=".$Id);
		if (!is_array($Result[0])) return -1;
		else return $Result[0]["Id"];
	}
}

?>